home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-03 | 4.6 KB | 133 lines | [TEXT/PJMM] |
- { This file has been processed by The THINK Pascal Source Converter, v1.1. }
-
- {
- Created: Sunday, January 6, 1991 at 11:14 PM
- SCSI.p
- Pascal Interface to the Macintosh Libraries
-
- Copyright Apple Computer, Inc. 1986-1990
- All rights reserved
- }
-
-
- {$IFC UNDEFINED UsingIncludes}
- {$SETC UsingIncludes := 0}
- {$ENDC}
-
-
- UNIT SCSI;
- INTERFACE USES Types;
-
-
-
-
-
-
-
-
-
-
-
-
-
- CONST
- scInc = 1;
- scNoInc = 2;
- scAdd = 3;
- scMove = 4;
- scLoop = 5;
- scNop = 6;
- scStop = 7;
- scComp = 8;
- scCommErr = 2; {communications error, operation timeout}
- scArbNBErr = 3; {arbitration timeout waiting for not BSY}
- scBadParmsErr = 4; {bad parameter or TIB opcode}
- scPhaseErr = 5; {SCSI bus not in correct phase for attempted operation}
- scCompareErr = 6; {data compare error}
- scMgrBusyErr = 7; {SCSI Manager busy }
- scSequenceErr = 8; {attempted operation is out of sequence}
- scBusTOErr = 9; {CPU bus timeout}
- scComplPhaseErr = 10; {SCSI bus wasn't in Status phase}
- sbSIGWord = $4552;
- pMapSIG = $504D;
-
- TYPE
- Block0 = PACKED RECORD
- sbSig: INTEGER; {unique value for SCSI block 0}
- sbBlkSize: INTEGER; {block size of device}
- sbBlkCount: LONGINT; {number of blocks on device}
- sbDevType: INTEGER; {device type}
- sbDevId: INTEGER; {device id}
- sbData: LONGINT; {not used}
- sbDrvrCount: INTEGER; {driver descriptor count}
- ddBlock: LONGINT; {1st driver's starting block}
- ddSize: INTEGER; {size of 1st driver (512-byte blks)}
- ddType: INTEGER; {system type (1 for Mac+)}
- ddPad: ARRAY [0..242] OF INTEGER; {ARRAY[0..242] OF INTEGER; not used}
- END;
-
- Partition = PACKED RECORD
- pmSig: INTEGER; {unique value for map entry blk}
- pmSigPad: INTEGER; {currently unused}
- pmMapBlkCnt: LONGINT; {# of blks in partition map}
- pmPyPartStart: LONGINT; {physical start blk of partition}
- pmPartBlkCnt: LONGINT; {# of blks in this partition}
- pmPartName: PACKED ARRAY [0..31] OF CHAR; {ASCII partition name}
- pmParType: PACKED ARRAY [0..31] OF CHAR; {ASCII partition type}
- pmLgDataStart: LONGINT; {log. # of partition's 1st data blk}
- pmDataCnt: LONGINT; {# of blks in partition's data area}
- pmPartStatus: LONGINT; {bit field for partition status}
- pmLgBootStart: LONGINT; {log. blk of partition's boot code}
- pmBootSize: LONGINT; {number of bytes in boot code}
- pmBootAddr: LONGINT; {memory load address of boot code}
- pmBootAddr2: LONGINT; {currently unused}
- pmBootEntry: LONGINT; {entry point of boot code}
- pmBootEntry2: LONGINT; {currently unused}
- pmBootCksum: LONGINT; {checksum of boot code}
- pmProcessor: PACKED ARRAY [0..15] OF CHAR; {ASCII for the processor type}
- pmPad: ARRAY [0..187] OF INTEGER; {512 bytes long currently unused}
- END;
-
- SCSIInstr = RECORD
- scOpcode: INTEGER;
- scParam1: LONGINT;
- scParam2: LONGINT;
- END;
-
-
- FUNCTION SCSIReset: OSErr;
- INLINE $4267,$A815;
- FUNCTION SCSIGet: OSErr;
- INLINE $3F3C,$0001,$A815;
- FUNCTION SCSISelect(targetID: INTEGER): OSErr;
- INLINE $3F3C,$0002,$A815;
- FUNCTION SCSICmd(buffer: Ptr;count: INTEGER): OSErr;
- INLINE $3F3C,$0003,$A815;
- FUNCTION SCSIRead(tibPtr: Ptr): OSErr;
- INLINE $3F3C,$0005,$A815;
- FUNCTION SCSIRBlind(tibPtr: Ptr): OSErr;
- INLINE $3F3C,$0008,$A815;
- FUNCTION SCSIWrite(tibPtr: Ptr): OSErr;
- INLINE $3F3C,$0006,$A815;
- FUNCTION SCSIWBlind(tibPtr: Ptr): OSErr;
- INLINE $3F3C,$0009,$A815;
- FUNCTION SCSIComplete(VAR stat: INTEGER;VAR message: INTEGER;wait: LONGINT): OSErr;
- INLINE $3F3C,$0004,$A815;
- FUNCTION SCSIStat: INTEGER;
- INLINE $3F3C,$000A,$A815;
- FUNCTION SCSISelAtn(targetID: INTEGER): OSErr;
- INLINE $3F3C,$000B,$A815;
- FUNCTION SCSIMsgIn(VAR message: INTEGER): OSErr;
- INLINE $3F3C,$000C,$A815;
- FUNCTION SCSIMsgOut(message: INTEGER): OSErr;
- INLINE $3F3C,$000D,$A815;
-
-
- { UsingSCSI }
-
-
- IMPLEMENTATION
- END.
-
-
-